package com.example.demo.mapper;

import com.example.demo.entity.ArticleInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.jmx.export.annotation.ManagedAttribute;

import java.util.List;

/**
 * Description:
 * User: 故我
 * Date: 2023-11-09
 * Time: 11:18
 */
@Mapper
public interface ArticleMapper {
    // 根据用户UID获取到文章数
    Integer getArtCountByUid(@Param("uid") Integer uid);

    // 根据用户uid获取到文章总数
    List<ArticleInfo> getArtListByUid(@Param("uid") Integer uid);

    // 根据文章的id去删除文章，还要根据用户的ID判断是否是该文章用户发布的文章
    Integer delArtById(@Param("id") Integer id, @Param("uid") Integer uid);

    // 根据文章id获取到当前文章
    ArticleInfo getArtDetail(@Param("id") Integer id);

    // 根据文章的id使阅读数 +1
    int increRCount(@Param("id") Integer id);

    // 添加文章
    int addArt(ArticleInfo articleInfo);

    // 修改文章 ，需要判断当前文章 uid 是否与登录 用户id一致
    int updateArt(ArticleInfo articleInfo);

    // 实现分页功能   psize -》 表示一页多少个   page -》 表示偏移量
    List<ArticleInfo> getArtByPage(@Param("psize") Integer psize, @Param("page") Integer page);

    // 获取到当前有多少篇文章，计算出，分成多少页
    int getArtTotalCount();

    // 根据文章的id获取文章的信息
    ArticleInfo getArtByaid(@Param("aid") Integer aid);

    // 增加文章的点赞量
    int addArtlikeCount(@Param("aid") Integer aid);

    //  减少文章的点赞量
    int delArtlikeCount(@Param("aid") Integer aid);

    // 增加文章的踩量
    int addArtTreadCount(@Param("aid") Integer aid);

    // 减少文章的踩量
    int delArtTreadCount(@Param("aid") Integer aid);
}
